//
//  BVBaseRouter.h
//  AFNetworking
//
//  Created by 崔晋 on 2019/8/14.
//

#import <Foundation/Foundation.h>
#import "BVBaseNavigationController.h"

NS_ASSUME_NONNULL_BEGIN
@class BVBaseRouter;

@interface BVRouterUtil : NSObject

+ (instancetype)shareInstance;

- (void)addRouter:(BVBaseRouter *)router moduleName:(NSString *)moduleName;

- (BVBaseRouter *)routerForModuleName:(NSString *)moduleName;


@end


@interface BVBaseRouter : NSObject
+ (void)pushToViewControllerWithUrl:(NSString *)url properties:(NSDictionary *_Nullable)properties;
+ (void)presentViewControllerWithUrl:(NSString *)url properties:(NSDictionary *_Nullable)properties;
+ (UIViewController *)viewControllerWithUrl:(NSString *)url
                                 properties:(NSDictionary *_Nullable)properties;
+ (NSString *)moduleNameWithUrl:(NSString *)url;
+ (NSString *)pageNameWithUrl:(NSString *)url;
+ (BVBaseNavigationController *)createNavWithVC:(__kindof UIViewController *)vc;


//子类实现
- (UIViewController *)viewControllerWithPageName:(NSString *)pageName properties:(NSDictionary *)properties;

@end

NS_ASSUME_NONNULL_END
